1. Field of the Invention
Embodiments of the present invention generally relate to virtual computing, and, more specifically, to image data transfer in a virtual computing environment.
2. Description of the Related Art
Direct Memory Access (DMA) provides a capability for certain computer hardware sub-systems to access a computer's memory for read and write operations without affecting the state of the computer's central processor. Such an ability to directly access the computer's memory frees the central processor from involvement with a data transfer, such as a transfer of data to a peripheral system of the computer, thereby speeding up overall computer operations. In some computer systems, a DMA controller (DMAC) may perform the DMA data transfer operations, for example, the copying of data from one computer memory to another.
Several techniques currently exist that address the requirement to instruct a DMAC to copy selective data from physical memory that is directly addressable by both software and the DMAC. One such technique includes a ‘write-back’ caching structure in which a cache memory comprises dirty page flags, where the dirty page flags inform the DMAC which memory locations should be accessed for data transfer. Another technique comprises a masked data Random Access Memory (RAM) associated with two dimensional video memory. The masked data RAM is used to regulate the DMAC access to memory that defines the position and shape of a moving window of video data designated for transfer to a video device.
However, in virtualized environments where a computer employs one or more virtual machines, software inside a virtual machine is abstracted from the computer's physical memory architecture for security purposes, making it difficult for the above techniques to instruct a DMAC as to which physical memory locations should be accessed for data transfer. Moreover, the problem is exacerbated when the virtualized memory comprises multi-dimensional data structures, such as image frames, due to the fact that the multi-dimensional data structures are located in non-contiguous physical memory.
Therefore, there is a need in the art for an efficient method for instructing DMAC resources to access selective data located in virtualized memory.